From news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!uwm.edu!vixen.cso.uiuc.edu!newsrelay.iastate.edu!dunix.drake.edu!acad.drake.edu!pk6811s Wed Nov 8 11:59:43 1995 Article: 2824 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!uwm.edu!vixen.cso.uiuc.edu!newsrelay.iastate.edu!dunix.drake.edu!acad.drake.edu!pk6811s From: pk6811s@acad.drake.edu Newsgroups: rec.games.corewar Subject: Re: Core_Warrior_ #4 - Die Hard Date: 7 Nov 95 08:51:46 CST Organization: Drake University, Des Moines, Iowa Lines: 133 Distribution: world Message-ID: <1995Nov7.085146@acad.drake.edu> References: <47lk61$aji@mozo.cc.purdue.edu> NNTP-Posting-Host: acad.drake.edu This makes the second posting of a continuous-launch imp-spiral, so I guess it's time to unveil Die Hard. Die Hard is based on a continuous 3-point launcher I developed for Keystone 94 where it gives the stone some protection against paper. When the DJN in the stone falls through it jumps to the launcher and creates the loooong imp which is very hard to kill. Some tweaking and rearrangement gives this 4-line fragment: spl #0 spl imp+5334 spl imp+2667 imp mov #0,2667 Lines following a spl #0 will execute in reverse order, so you can easily see how the imp is built up. Append these four lines to a spl/mov silk-style copier to get a lot of them: c0 spl @0,space mov }c0,>c0 cs spl #0 spl imp+5334 spl imp+2667 imp mov #0,2667 Put in a mov/add bomber and post-increment helpers: c0 spl @0,space mov }c0,>c0 cs spl #0 ,}dv mov dv ,}dv+space cb add.a #119 , dv+space spl imp+5334 ,}dv+space spl imp+2667 ,}dv+space imp mov.i #2667 ,*0 Also note the improved imp which can sometimes hurdle a gate. This was posted a couple of years ago by somebody - Sheppard? Bremer? Die Hard that I used in Round 1 incorporates a short quick-scan vamp whose pit does a core-clear and brainwash. The brainwash works to make pspace programs default to something Die Hard can kill. ;redcode-94m quiet ;name Die Hard ;kill Die Hard ;author P.Kline ;contact pk6811s@acad.drake.edu ;NSFCWT Round 1 ;assert CORESIZE == 8000 ;strategy minimal kill+, maximal survival ; ; Quick-scan a small portion of core ; vamp anything found into the pit ; the pit does a brainwash as well as core-clear ; Die Hard - replicate continuous ring-launchers (ala Keystone) ; The brainwash forces pspacers to their default - usually ; some stand-still program which Die Hard can kill ; space equ (4-40*127) boot equ (30*127+50) dv equ (c0+58) dvins mov 101,{1 ; pretty good bomb qstep dat -8,8 qfang jmp qpit-qcomp+8,qcomp-8 start seq qcomp+(100*01),qcomp+(100*02) ; quick-scan small part of core mov.ab #(100*01),*qcptr seq qcomp+(100*03),qcomp+(100*04) mov.ab #(100*03),*qcptr seq qcomp+(100*05),qcomp+(100*06) mov.ab #(100*05),*qcptr seq qcomp+(100*07),qcomp+(100*08) mov.ab #(100*07),*qcptr qcptr jmn.b qcomp,qcomp seq qcomp+(100*09),qcomp+(100*10) mov.ab #(100*09),*qcptr seq qcomp+(100*11),qcomp+(100*12) mov.ab #(100*11),*qcptr seq qcomp+(100*13),qcomp+(100*14) mov.ab #(100*13),*qcptr seq qcomp+(100*15),qcomp+(100*16) mov.ab #(100*15),*qcptr jmz.b dh,qcomp qcomp sne -200,0 ; which of two pointers was it? add #100,qcomp add.b qcomp,qfang ; adjust fang sub.ba qcomp,qfang mov qfang,@qfang ; drop 6 fangs add qstep,qfang mov qfang,@qfang add qstep,qfang djn -4,#3 ; can't take too much time! dh mov dvins,dv+boot ; position dv-bomb as needed mov dvins,dv spl 1,>-2002 ; make 8 processes spl 1,>-2001 spl 1,>-2000 mov c0 cs spl #0 ,}dv ; following lines execute in reverse order mov dv ,}dv+space cb add.a #119 , dv+space spl imp+5334 ,}dv+space spl imp+2667 ,}dv+space imp mov.i #2667 ,*0 for 36 dat 0,0 rof qclr dat 1,1 qpit spl 0,0 ; the pit spl -1,>1 ; washing with zero causes opponent stp.ab #0,#0 ; to choose default strategy mov qclr,>1 ; self-destructive core-clear jmp -1,5 for 5 dat 0,0 rof dat start+1000,start+2000 ; small decoy for backward-scanners dat start+1000,start+2000 dat start+1000,start+2000 dat start+1000,start+2000 dat start+1000,start+2000 dat 1,1 ; delay djn-stream overruns dat 1,1 end start Paul Kline pk6811s@acad.drake.edu